- 
                Notifications
    
You must be signed in to change notification settings  - Fork 367
 
feat(build): create multiplatform image #322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
6c1c6c0    to
    069eec4      
    Compare
  
    | 
           Thank you, that's awesome! Could you also please take a look at the  Will review, test and merge this PR after the   | 
    
069eec4    to
    735b8eb      
    Compare
  
    | 
           There seems to be a certificate problem within the arm64 build. I must look into it further.  | 
    
32481fd    to
    cc64d21      
    Compare
  
    | 
           It appearch that the builder stage doesn't work properly for ARM64 setup. The surface error is about missing  What's strange is that everything builds just fine on my local machine (M1). I don't think I'll be able to resolve it myself without large changes in the containerfile but that might break some other functionality I am unaware of.  | 
    
cc64d21    to
    954c962      
    Compare
  
    | 
           Need to look at this in context of #80  | 
    
Signed-off-by: Tomas Pilar <[email protected]>
954c962    to
    367958a      
    Compare
  
    Signed-off-by: Tomas Pilar <[email protected]>
| 
           Reviewing.  | 
    
## 🚀 Multiplatform Docker Support Implementation ### Core Changes: - ✅ **Containerfile.lite**: Fixed ARM64 compatibility issues - Changed SHELL from /bin/bash to /bin/sh for ARM64 UBI compatibility - Explicitly install bash in builder stage - Added --setopt=skip_if_unavailable=1 for robust ARM64 builds - ✅ **GitHub Actions Workflows**: Updated for multiplatform builds - docker-image.yml: Added --platform linux/amd64,linux/arm64 support - docker-release.yml: Updated to use docker buildx imagetools for manifest lists - ibm-cloud-code-engine.yml: Added multiplatform build support - ✅ **Makefile**: Enhanced with multiplatform build targets - container-build-multi: Build and push multiplatform images - container-build-multi-local: Local multiplatform builds for testing - Added proper buildx builder configuration - ✅ **Documentation**: Comprehensive testing and implementation guide - MULTIPLATFORM-DOCKER-SUPPORT.md: Complete testing documentation - test-multiplatform.yml: Workflow for manual testing ### Key Features: - 🏗️ Multi-platform builds: linux/amd64,linux/arm64 - 🔧 ARM64 compatibility fixes for UBI base images - 🚀 CI/CD integration with all Docker workflows - 📚 Comprehensive testing documentation ### Testing Results: - ✅ Local ARM64 builds successful on Apple Silicon - ✅ FastAPI application loads correctly - ✅ All dependencies properly installed - ✅ GitHub Actions workflows validated ### Addresses: - Closes #80: Feature Request for multi-architecture container support - Addresses PR #322: Create multiplatform image implementation Ready for production deployment with full ARM64 and AMD64 support.
| 
           Merged separate PR which may address this - if still an issue please reopen a new PR.  | 
    
Signed-off-by: Tomas Pilar [email protected]
Unfortunately, one can't simply enable build multi-platform image without pushing it. This is explained in https://docs.docker.com/reference/cli/docker/buildx/build/#load and further discussed in docker/buildx#65. I had to restructure the pipeline a bit.